/*
*---------------------------------------------------------------
*                        Lvgl Font Tool                         
*                                                               
* 注:使用unicode编码                                              
* 注:本字体文件由Lvgl Font Tool V0.4 生成                          
* 作者:阿里(qq:617622104)                                         
*---------------------------------------------------------------
*/


#include "lvgl.h"


static const uint8_t glyph_bitmap[] = {
/* . */
0x5e,0xfc,0x00,  //+@@%.
0x5e,0xfc,0x00,  //+@@%.
0x5e,0xfc,0x00,  //+@@%.


/* 0 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x0c,0xc0,0x00,0x00,0x00,0xcc,0x00,  //.%%.......%%..
0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //..............
0x0c,0xc0,0x00,0x00,0x00,0xcc,0x00,  //.%%.......%%..
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* 1 */
0x00,0x08,0xa0,0x00,  //...+%...
0x00,0x5e,0xc0,0x00,  //..+@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x03,0xef,0xc0,0x00,  //..@@%...
0x00,0x3a,0x50,0x00,  //...%+...
0x00,0x00,0x00,0x00,  //........
0x00,0x3a,0x50,0x00,  //...%+...
0x03,0xef,0xc0,0x00,  //..@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x05,0xef,0xc0,0x00,  //.+@@%...
0x00,0x5e,0xc0,0x00,  //..+@%...
0x00,0x08,0xa0,0x00,  //...+%...


/* 2 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x00,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //..%@@@@@@@+%+.
0x00,0x0c,0xff,0xff,0xe8,0xee,0x50,  //...%@@@@@+@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x5e,0xff,0xff,0xe8,0xee,0x50,  //..+@@@@@@+@@+.
0x05,0xcf,0xff,0xff,0xfe,0x33,0x00,  //.+%@@@@@@@....
0x5e,0xff,0xff,0xff,0xe8,0x00,0x00,  //+@@@@@@@@+....
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xec,0xff,0xff,0xe8,0x00,0x00,  //+@@%@@@@@+....
0x5a,0xaf,0xff,0xff,0xfe,0x50,0x00,  //+%%@@@@@@@+...
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* 3 */
0x00,0xcf,0xff,0xff,0xff,0xfc,0x30,  //..%@@@@@@@@%..
0x00,0x0e,0xff,0xff,0xff,0xea,0xc0,  //...@@@@@@@@%%.
0x00,0x03,0xef,0xff,0xfe,0x8e,0xc0,  //....@@@@@@+@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x08,0xef,0xff,0xfe,0x8c,0x80,  //...+@@@@@@+%+.
0x00,0x3e,0xff,0xff,0xff,0xe3,0x00,  //...@@@@@@@@...
0x00,0x08,0xef,0xff,0xfe,0x8c,0x80,  //...+@@@@@@+%+.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x03,0xef,0xff,0xfe,0x8e,0xc0,  //....@@@@@@+@%.
0x00,0x0e,0xff,0xff,0xff,0xea,0xc0,  //...@@@@@@@@%%.
0x00,0xcf,0xff,0xff,0xff,0xfc,0x00,  //..%@@@@@@@@%..


/* 4 */
0x5a,0x00,0x00,0x00,0x00,0x03,0x30,  //+%............
0x5e,0xc0,0x00,0x00,0x00,0x8c,0x50,  //+@%.......+%+.
0x5e,0xfc,0x00,0x00,0x08,0xee,0x50,  //+@@%.....+@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfa,0x00,0x00,0x0a,0xfe,0x50,  //+@@%.....%@@+.
0x0a,0xae,0xff,0xff,0xe8,0xcc,0x00,  //.%%@@@@@@+%%..
0x00,0xcf,0xff,0xff,0xfe,0x30,0x00,  //..%@@@@@@@....
0x00,0x5e,0xff,0xff,0xe8,0xaa,0x00,  //..+@@@@@@+%%..
0x00,0x00,0x00,0x00,0x0a,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x00,0xee,0x50,  //..........@@+.
0x00,0x00,0x00,0x00,0x00,0x0a,0x50,  //...........%+.


/* 5 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x5a,0xaf,0xff,0xff,0xfe,0x50,0x00,  //+%%@@@@@@@+...
0x5e,0xec,0xff,0xff,0xe8,0x00,0x00,  //+@@%@@@@@+....
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xff,0xff,0xff,0xe8,0x00,0x00,  //+@@@@@@@@+....
0x03,0xcf,0xff,0xff,0xfe,0x55,0x00,  //..%@@@@@@@++..
0x00,0x5e,0xff,0xff,0xe8,0xee,0x50,  //..+@@@@@@+@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x0c,0xff,0xff,0xe8,0xee,0x50,  //...%@@@@@+@@+.
0x00,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //..%@@@@@@@+%+.
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* 6 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x5a,0xaf,0xff,0xff,0xfe,0x50,0x00,  //+%%@@@@@@@+...
0x5e,0xec,0xff,0xff,0xe8,0x00,0x00,  //+@@%@@@@@+....
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x5e,0xfc,0x00,0x00,0x00,0x00,0x00,  //+@@%..........
0x0c,0xce,0xff,0xff,0xe8,0x00,0x00,  //.%%@@@@@@+....
0x00,0xcf,0xff,0xff,0xfe,0x30,0x00,  //..%@@@@@@@....
0x0c,0xce,0xff,0xff,0xe8,0xcc,0x00,  //.%%@@@@@@+%%..
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* 7 */
0x00,0xcf,0xff,0xff,0xff,0xfc,0x30,  //..%@@@@@@@@%..
0x00,0x0e,0xff,0xff,0xff,0xea,0xc0,  //...@@@@@@@@%%.
0x00,0x03,0xef,0xff,0xfe,0x8e,0xc0,  //....@@@@@@+@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x00,0x5c,0x80,  //..........+%+.
0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //..............
0x00,0x00,0x00,0x00,0x00,0x3a,0x80,  //...........%+.
0x00,0x00,0x00,0x00,0x03,0xef,0xc0,  //..........@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x05,0xef,0xc0,  //.........+@@%.
0x00,0x00,0x00,0x00,0x00,0x5e,0xc0,  //..........+@%.
0x00,0x00,0x00,0x00,0x00,0x08,0xa0,  //...........+%.


/* 8 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x0c,0xce,0xff,0xff,0xe8,0xcc,0x00,  //.%%@@@@@@+%%..
0x00,0xcf,0xff,0xff,0xfe,0x30,0x00,  //..%@@@@@@@....
0x0c,0xce,0xff,0xff,0xe8,0xcc,0x00,  //.%%@@@@@@+%%..
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* 9 */
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..
0x5a,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //+%%@@@@@@@+%+.
0x5e,0xec,0xff,0xff,0xe8,0xee,0x50,  //+@@%@@@@@+@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x5e,0xfc,0x00,0x00,0x0c,0xfe,0x50,  //+@@%.....%@@+.
0x0c,0xce,0xff,0xff,0xe8,0xcc,0x00,  //.%%@@@@@@+%%..
0x00,0xcf,0xff,0xff,0xfe,0x30,0x00,  //..%@@@@@@@....
0x00,0x5e,0xff,0xff,0xe8,0xcc,0x00,  //..+@@@@@@+%%..
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x00,0x00,0x00,0x0c,0xfe,0x50,  //.........%@@+.
0x00,0x0c,0xff,0xff,0xe8,0xee,0x50,  //...%@@@@@+@@+.
0x00,0xaf,0xff,0xff,0xfe,0x5a,0x50,  //..%@@@@@@@+%+.
0x08,0xef,0xff,0xff,0xff,0xe5,0x00,  //.+@@@@@@@@@+..


/* : */
0x5e,0xfc,0x00,  //+@@%..
0x5e,0xfc,0x00,  //+@@%..
0x5e,0xfc,0x00,  //+@@%..
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x00,0x00,0x00,  //......
0x5e,0xfc,0x00,  //+@@%..
0x5e,0xfc,0x00,  //+@@%..
0x5e,0xfc,0x00,  //+@@%..


};


static const lv_font_fmt_txt_glyph_dsc_t glyph_dsc[] = {
    {.bitmap_index = 0,	.adv_w = 5, .box_h = 3, .box_w = 6, .ofs_x = 0, .ofs_y = 5},/*(.)*/
    {.bitmap_index = 9,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(0)*/
    {.bitmap_index = 128,	.adv_w = 8, .box_h = 17, .box_w = 8, .ofs_x = 0, .ofs_y = 5},/*(1)*/
    {.bitmap_index = 196,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(2)*/
    {.bitmap_index = 315,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(3)*/
    {.bitmap_index = 434,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(4)*/
    {.bitmap_index = 553,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(5)*/
    {.bitmap_index = 672,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(6)*/
    {.bitmap_index = 791,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(7)*/
    {.bitmap_index = 910,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(8)*/
    {.bitmap_index = 1029,	.adv_w = 14, .box_h = 17, .box_w = 14, .ofs_x = 0, .ofs_y = 5},/*(9)*/
    {.bitmap_index = 1148,	.adv_w = 6, .box_h = 14, .box_w = 6, .ofs_x = 0, .ofs_y = 5},/*(:)*/
};


static const uint16_t unicode_list_1[] = {
    0x002e,	/*(.)*/
    0x0030,	/*(0)*/
    0x0031,	/*(1)*/
    0x0032,	/*(2)*/
    0x0033,	/*(3)*/
    0x0034,	/*(4)*/
    0x0035,	/*(5)*/
    0x0036,	/*(6)*/
    0x0037,	/*(7)*/
    0x0038,	/*(8)*/
    0x0039,	/*(9)*/
    0x003a,	/*(:)*/
    0x0000,    /*End indicator*/
};


static const lv_font_fmt_txt_cmap_t cmaps[] = {
    {
        .range_start = 0x002e,
        .range_length = 0x003a,
        .type = LV_FONT_FMT_TXT_CMAP_SPARSE_TINY,
        .glyph_id_start = 0,
        .unicode_list = unicode_list_1,
        .glyph_id_ofs_list = NULL,
        .list_length = 12,
    }
};


static lv_font_fmt_txt_dsc_t font_dsc = {
    .glyph_bitmap = glyph_bitmap,
    .glyph_dsc = glyph_dsc,
    .cmaps = cmaps,
    .cmap_num = 1,
    .bpp = 4,

    .kern_scale = 0,
    .kern_dsc = NULL,
    .kern_classes = 0,

    .last_letter = 0x003a,
    .last_glyph_id = 11,
};


static int binsearch(const uint16_t *sortedSeq, int seqLength, uint16_t keyData) {
    int low = 0, mid, high = seqLength - 1;
    while (low <= high) {
        mid = (low + high)>>1;//右移1位等于是/2，奇数，无论奇偶，有个值就行
        if (keyData < sortedSeq[mid]) {
            high = mid - 1;//是mid-1，因为mid已经比较过了
        }
        else if (keyData > sortedSeq[mid]) {
            low = mid + 1;
        }
        else {
            return mid;
        }
    }
    return -1;
}


static const uint8_t * __user_font_get_bitmap(const lv_font_t * font, uint32_t unicode_letter) {
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if( unicode_letter<fdsc->cmaps[0].range_start || unicode_letter>fdsc->cmaps[0].range_length ) return false;

    int i;
    if( unicode_letter==fdsc->last_letter ){
        i = fdsc->last_glyph_id;
    }
    else{
        i = binsearch(fdsc->cmaps[0].unicode_list, fdsc->cmaps[0].list_length, unicode_letter);
    }
    if( i != -1 ) {
        const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[i];
        fdsc->last_glyph_id = i;
        fdsc->last_letter = unicode_letter;
        return &fdsc->glyph_bitmap[gdsc->bitmap_index];
    }
    return NULL;
}


static Cbool __user_font_get_glyph_dsc(const lv_font_t * font, lv_font_glyph_dsc_t * dsc_out, uint32_t unicode_letter, uint32_t unicode_letter_next) {
    lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc;

    if( unicode_letter<fdsc->cmaps[0].range_start || unicode_letter>fdsc->cmaps[0].range_length ) return false;

    int i;
    if( unicode_letter==fdsc->last_letter ){
        i = fdsc->last_glyph_id;
    }
    else{
        i = binsearch(fdsc->cmaps[0].unicode_list, fdsc->cmaps[0].list_length, unicode_letter);
    }
    if( i != -1 ) {
        const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[i];
        fdsc->last_glyph_id = i;
        fdsc->last_letter = unicode_letter;
        dsc_out->adv_w = gdsc->adv_w;
        dsc_out->box_h = gdsc->box_h;
        dsc_out->box_w = gdsc->box_w;
        dsc_out->ofs_x = gdsc->ofs_x;
        dsc_out->ofs_y = gdsc->ofs_y;
        dsc_out->bpp   = fdsc->bpp;
        return true;
    }
    return false;
}


//DS-Digital,Bold,20
//字模高度：27
//内部字体
//使用排序和二分查表
lv_font_t DS_14 = {
    .dsc = &font_dsc,
    .get_glyph_bitmap = __user_font_get_bitmap,
    .get_glyph_dsc = __user_font_get_glyph_dsc,
    .line_height = 27,
    .base_line = 0,
};

